package com.ylsk.check.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ylsk.common.core.domain.MybatisPlusBaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ylsk.common.annotation.Excel;
import com.ylsk.common.core.domain.BaseEntity;

/**
 * 报备信息对象 ins_report_info
 *
 * @author yangsy
 * @date 2023-12-13
 */
@TableName("ins_report_info")
public class ReportInfo extends MybatisPlusBaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    @TableId
    private Long reportInfoId;

    /** 项目名称 */
    private String projectName;

    /** 报备单号（流水号按照一定的规则生成） */
    private String reportNum;

    /** 备案日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date filingDate;

    /** 建设单位 */
    private String buildUnit;

    /** 施工单位 */
    private String construnctionUnit;

    /** 施工内容 */
    private String construnctionContent;

    /** 许可时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "许可时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date licenseTime;

    /** 批准文号 */
    private String approvalNumber;

    /** 施工开始路段id */
    private Long expresswayStartSectionId;

    /** 施工结束路段id */
    private Long expresswayEndSectionId;

    /** 施工开始方向(上行 下行 上下行) */
    private String constructionStartDirection;

    /** 施工结束方向(上行 下行 上下行) */
    private String constructionEndDirection;

    /** 施工开始桩号km */
    private String constructionStartKm;

    /** 施工开始桩号m */
    private String constructionStartM;

    /** 施工结束桩号km */
    private String constructionEndKm;

    /** 施工结束桩号m */
    private String constructionEndM;

    /** 施工类型 */
    private Integer constructionType;

    /** 现场负责人 */
    private String head;

    /** 联系电话 */
    private String telePhone;

    /** 施工开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date construnctionStartTime;

    /** 施工完成时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date construnctionEndTime;

    /** 施工开始时段 */
    @JsonFormat(pattern = "HH:mm:ss")
    private Date startTimePeriod;

    /** 施工结束时段 */
    @JsonFormat(pattern = "HH:mm:ss")
    private Date endTimePeriod;

    /** 计划进场时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @TableField(updateStrategy= FieldStrategy. IGNORED)
    private Date planInTime;

    /** 施工组织方案FileId */
    private Long organizationFileId;

    /** 施工许可文件FileId */
    private Long licenseFileId;

    /** 交通组织方案FileId */
    private Long trafficFileId;

    /** 应急预案FileId */
    private Long emergencyPlanFileId;

    /** 安全培训材料FileId */
    private Long safetyTrainingFileId;

    /** 资质证明材料FileId */
    private Long qualificationCertificationFileId;

    /** 其他材料FileId */
    private Long otherFileId;

    /** 备注 */
    private String remark;

    /** 路产赔（补）偿、占用费金额  单位万元 */
    private BigDecimal occupancyFeeAmount;

    /** 0：草稿 1：提交（待接收） 2：通过 3：驳回 */
    private Integer reportStatus;

    /** 所属大队 */
    private Long deptId;

    /** 审核人 */
    private Long reviewedBy;

    /** 0：未归档 1：已归档 */
    private int isArchived;

    /**最近一次审批记录id */
    private Long reportApprLogId;

    /**施工状态 0:未进场 1:非占道施工  2:占道施工 3:撤场  4:结束 */
    private Integer constructionStatus;

    public Long getReportInfoId() {
        return reportInfoId;
    }

    public void setReportInfoId(Long reportInfoId) {
        this.reportInfoId = reportInfoId;
    }

    public void setReportNum(String reportNum)
    {
        this.reportNum = reportNum;
    }

    public String getReportNum()
    {
        return reportNum;
    }
    public void setFilingDate(Date filingDate)
    {
        this.filingDate = filingDate;
    }

    public Date getFilingDate()
    {
        return filingDate;
    }
    public void setBuildUnit(String buildUnit)
    {
        this.buildUnit = buildUnit;
    }

    public String getBuildUnit()
    {
        return buildUnit;
    }
    public void setConstrunctionUnit(String construnctionUnit)
    {
        this.construnctionUnit = construnctionUnit;
    }

    public String getConstrunctionUnit()
    {
        return construnctionUnit;
    }
    public void setConstrunctionContent(String construnctionContent)
    {
        this.construnctionContent = construnctionContent;
    }

    public String getConstrunctionContent()
    {
        return construnctionContent;
    }
    public void setLicenseTime(Date licenseTime)
    {
        this.licenseTime = licenseTime;
    }

    public Date getLicenseTime()
    {
        return licenseTime;
    }
    public void setApprovalNumber(String approvalNumber)
    {
        this.approvalNumber = approvalNumber;
    }

    public String getApprovalNumber()
    {
        return approvalNumber;
    }
    public void setExpresswayStartSectionId(Long expresswayStartSectionId)
    {
        this.expresswayStartSectionId = expresswayStartSectionId;
    }

    public Long getExpresswayStartSectionId()
    {
        return expresswayStartSectionId;
    }
    public void setExpresswayEndSectionId(Long expresswayEndSectionId)
    {
        this.expresswayEndSectionId = expresswayEndSectionId;
    }

    public Long getExpresswayEndSectionId()
    {
        return expresswayEndSectionId;
    }
    public void setConstructionStartDirection(String constructionStartDirection)
    {
        this.constructionStartDirection = constructionStartDirection;
    }

    public String getConstructionStartDirection()
    {
        return constructionStartDirection;
    }
    public void setConstructionEndDirection(String constructionEndDirection)
    {
        this.constructionEndDirection = constructionEndDirection;
    }

    public String getConstructionEndDirection()
    {
        return constructionEndDirection;
    }
    public void setConstructionStartKm(String constructionStartKm)
    {
        this.constructionStartKm = constructionStartKm;
    }

    public String getConstructionStartKm()
    {
        return constructionStartKm;
    }
    public void setConstructionStartM(String constructionStartM)
    {
        this.constructionStartM = constructionStartM;
    }

    public String getConstructionStartM()
    {
        return constructionStartM;
    }
    public void setConstructionEndKm(String constructionEndKm)
    {
        this.constructionEndKm = constructionEndKm;
    }

    public String getConstructionEndKm()
    {
        return constructionEndKm;
    }
    public void setConstructionEndM(String constructionEndM)
    {
        this.constructionEndM = constructionEndM;
    }

    public String getConstructionEndM()
    {
        return constructionEndM;
    }
    public void setConstructionType(Integer constructionType)
    {
        this.constructionType = constructionType;
    }

    public Integer getConstructionType()
    {
        return constructionType;
    }
    public void setHead(String head)
    {
        this.head = head;
    }

    public String getHead()
    {
        return head;
    }
    public void setTelePhone(String telePhone)
    {
        this.telePhone = telePhone;
    }

    public String getTelePhone()
    {
        return telePhone;
    }
    public void setConstrunctionStartTime(Date construnctionStartTime)
    {
        this.construnctionStartTime = construnctionStartTime;
    }

    public Date getConstrunctionStartTime()
    {
        return construnctionStartTime;
    }
    public void setConstrunctionEndTime(Date construnctionEndTime)
    {
        this.construnctionEndTime = construnctionEndTime;
    }

    public Date getConstrunctionEndTime()
    {
        return construnctionEndTime;
    }
    public void setPlanInTime(Date planInTime)
    {
        this.planInTime = planInTime;
    }

    public Date getPlanInTime()
    {
        return planInTime;
    }
    public void setOrganizationFileId(Long organizationFileId)
    {
        this.organizationFileId = organizationFileId;
    }

    public Long getOrganizationFileId()
    {
        return organizationFileId;
    }
    public void setLicenseFileId(Long licenseFileId)
    {
        this.licenseFileId = licenseFileId;
    }

    public Long getLicenseFileId()
    {
        return licenseFileId;
    }
    public void setOccupancyFeeAmount(BigDecimal occupancyFeeAmount)
    {
        this.occupancyFeeAmount = occupancyFeeAmount;
    }

    public BigDecimal getOccupancyFeeAmount()
    {
        return occupancyFeeAmount;
    }
    public void setReportStatus(Integer reportStatus)
    {
        this.reportStatus = reportStatus;
    }

    public Integer getReportStatus()
    {
        return reportStatus;
    }
    public void setDeptId(Long deptId)
    {
        this.deptId = deptId;
    }

    public Long getDeptId()
    {
        return deptId;
    }
    public void setReviewedBy(Long reviewedBy)
    {
        this.reviewedBy = reviewedBy;
    }

    public Long getReviewedBy()
    {
        return reviewedBy;
    }
    public void setIsArchived(int isArchived)
    {
        this.isArchived = isArchived;
    }

    public int getIsArchived()
    {
        return isArchived;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public Long getTrafficFileId() {
        return trafficFileId;
    }

    public void setTrafficFileId(Long trafficFileId) {
        this.trafficFileId = trafficFileId;
    }

    public Long getEmergencyPlanFileId() {
        return emergencyPlanFileId;
    }

    public void setEmergencyPlanFileId(Long emergencyPlanFileId) {
        this.emergencyPlanFileId = emergencyPlanFileId;
    }

    public Long getSafetyTrainingFileId() {
        return safetyTrainingFileId;
    }

    public void setSafetyTrainingFileId(Long safetyTrainingFileId) {
        this.safetyTrainingFileId = safetyTrainingFileId;
    }

    public Long getQualificationCertificationFileId() {
        return qualificationCertificationFileId;
    }

    public void setQualificationCertificationFileId(Long qualificationCertificationFileId) {
        this.qualificationCertificationFileId = qualificationCertificationFileId;
    }

    public Long getOtherFileId() {
        return otherFileId;
    }

    public void setOtherFileId(Long otherFileId) {
        this.otherFileId = otherFileId;
    }

    public Date getStartTimePeriod() {
        return startTimePeriod;
    }

    public void setStartTimePeriod(Date startTimePeriod) {
        this.startTimePeriod = startTimePeriod;
    }

    public Date getEndTimePeriod() {
        return endTimePeriod;
    }

    public void setEndTimePeriod(Date endTimePeriod) {
        this.endTimePeriod = endTimePeriod;
    }

    public Long getReportApprLogId() {
        return reportApprLogId;
    }

    public void setReportApprLogId(Long reportApprLogId) {
        this.reportApprLogId = reportApprLogId;
    }

    public Integer getConstructionStatus() {
        return constructionStatus;
    }

    public void setConstructionStatus(Integer constructionStatus) {
        this.constructionStatus = constructionStatus;
    }

    public String getProjectName() {
        return projectName;
    }

    public void setProjectName(String projectName) {
        this.projectName = projectName;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("reportInfoId", getReportInfoId())
            .append("reportNum", getReportNum())
            .append("filingDate", getFilingDate())
            .append("buildUnit", getBuildUnit())
            .append("construnctionUnit", getConstrunctionUnit())
            .append("construnctionContent", getConstrunctionContent())
            .append("licenseTime", getLicenseTime())
            .append("approvalNumber", getApprovalNumber())
            .append("expresswayStartSectionId", getExpresswayStartSectionId())
            .append("expresswayEndSectionId", getExpresswayEndSectionId())
            .append("constructionStartDirection", getConstructionStartDirection())
            .append("constructionEndDirection", getConstructionEndDirection())
            .append("constructionStartKm", getConstructionStartKm())
            .append("constructionStartM", getConstructionStartM())
            .append("constructionEndKm", getConstructionEndKm())
            .append("constructionEndM", getConstructionEndM())
            .append("constructionType", getConstructionType())
            .append("head", getHead())
            .append("telePhone", getTelePhone())
            .append("construnctionStartTime", getConstrunctionStartTime())
            .append("construnctionEndTime", getConstrunctionEndTime())
            .append("planInTime", getPlanInTime())
            .append("organizationFileId", getOrganizationFileId())
            .append("licenseFileId", getLicenseFileId())
            .append("occupancyFeeAmount", getOccupancyFeeAmount())
            .append("reportStatus", getReportStatus())
            .append("deptId", getDeptId())
            .append("reviewedBy", getReviewedBy())
            .append("isArchived", getIsArchived())
            .append("delFlag", getDelFlag())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
